.\" Copyright (c) 1983, 1991, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     From: @(#)send.2	8.2 (Berkeley) 2/21/94
.\" $FreeBSD: net/sctp_bindx.3 202176 2010-01-12 21:45:03Z brueffer $
.\"
.Dd December 15, 2006
.Dt SCTP_BINDX 3
.Os
.Sh NAME
.Nm sctp_bindx
.Nd bind or unbind an SCTP socket to a list of addresses.
.Sh LIBRARY
.Lb libc
.Sh SYNOPSIS
.In sys/types.h
.In sys/socket.h
.In netinet/sctp.h
.Ft int
.Fn sctp_bindx "int s" "struct sockaddr *addrs" "int num" "int type"
.Sh DESCRIPTION
The
.Fn sctp_bindx
call binds or unbinds a address or a list of addresses to an
SCTP endpoint.
This allows a user to bind a subset of
addresses.
The
.Fn sctp_bindx
call operates similarly to 
.Fn bind
but allows a list of addresses and also allows a bind or an
unbind.
The argument
.Fa s
must be a valid SCTP socket descriptor.
The argument
.Fa addrs
is a list of addresses (where the list may be only 1 in
length) that the user wishes to bind or unbind to the
socket.
The argument
.Fa type
must be one of the following values.
.Pp
.Dv SCTP_BINDX_ADD_ADDR
This value indicates that the listed address(es) need to
be added to the endpoint.
.Pp
.Dv SCTP_BINDX_DEL_ADDR
This value indicates that the listed address(es) need to
be removed from the endpoint.
.Pp
Note that when a user adds or deletes an address to an
association if the dynamic address flag
.Va net.inet.sctp.auto_asconf
is enabled any associations in the endpoint will attempt to
have the address(es) added dynamically to the existing
association.
.Sh RETURN VALUES
The call returns 0 on success and -1 upon failure.
.Sh ERRORS
The
.Fn sctp_bindx
function can return the following errors:
.Bl -tag -width Er
.It Bq Er EINVAL
This value is returned if the
.Fa type
field is not one of the allowed values (see above).
.It Bq Er ENOMEM
This value is returned if the number of addresses
being added causes a memory allocation failure in 
the call.
.It Bq Er EBADF
The argument
.Fa s
is not a valid descriptor.
.It Bq Er ENOTSOCK
The argument
.Fa s
is not a socket.
.El
.Sh SEE ALSO
.Xr bind 2 ,
.Xr sctp 4
